const date = new Date()
const books = ['cet4', 'cet4高频', 'cet6', 'cet6高频', '考研', '考研高频']
const checked = []
for (let i = 0; i < 6; i++) {
  var a = books[i]
  checked.push(a)
}

Component({
  options: {
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  /**
   * 组件的属性列表
   */
  properties: {
    title: {            // 属性名
      type: String,     // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
      value: '标题'     // 属性初始值（可选），如果未指定则会根据类型选择一个
    },
    // 弹窗内容
    content: {
      type: String,
      value: '内容'
    },
    // 弹窗取消按钮 
    btn_no: {
      type: String,
      value: '取消'
    },
    // 弹窗确认按钮 
    btn_ok: {
      type: String,
      value: '确定'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    flag: true,
    checked: checked,
    book: 'cet4',
    num: 20,
    minusStatus: 'disable'
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //隐藏弹框
    hidePopup: function () {
      this.setData({
        flag: !this.data.flag
      })
    },
    //展示弹框
    showPopup() {
      this.getmessage()
      this.setData({
        flag: !this.data.flag
      })
    },
    /*
    * 内部私有方法建议以下划线开头
    * triggerEvent 用于触发事件
    */
    _error() {
      //触发取消回调
      this.triggerEvent("error")
    },
    _success() {
      //触发成功回调
      this.triggerEvent("success");
      var oldbook = wx.getStorageSync("checked")//更换书籍时，清除所有数据
      if (oldbook != this.data.book) {
        wx.removeStorageSync("now_num")//清除今日已学的缓存数据
        wx.removeStorageSync("all_num")//清除今日已学的缓存数据
        wx.removeStorageSync("previous")//清除当前单词书已学的缓存数据
        wx.setStorageSync("checked", this.data.book)
      } else { wx.setStorageSync("checked", this.data.book) }
      var oldnum = wx.getStorageSync("dayNum")
      if (oldnum != this.data.num) {//更改每日计划时，清除今天的数据
        var now_num = wx.getStorageSync("now_num")
        var previous = wx.getStorageSync("previous")
        var start = previous - now_num
        if (start < 0) {
          start = 0
        }
        wx.setStorageSync("previous", start)
        wx.setStorageSync("now_num",0)//清除今日已学的缓存数据
        wx.setStorageSync("all_num",0)//清除今日已学的缓存数据
        wx.setStorageSync("dayNum", this.data.num)
      } else {
        wx.setStorageSync("dayNum", this.data.num)
      }
      console.log("单词书：" + this.data.book);
      console.log("每日计划数：" + this.data.num);
      this.getData()
    },
    bindChange: function (e) {
      var a = e.detail.value
      this.setData({
        book: books[a],
      })
    },
    //事件处理函数
    /*点击减号*/
    bindMinus: function () {
      var num = this.data.num;
      if (num > 1) {
        num--;
      }
      var minusStatus = num > 1 ? 'normal' : 'disable';
      this.setData({
        num: num,
        minusStatus: minusStatus
      })
    },
    /*点击加号*/
    bindPlus: function () {
      var num = this.data.num;
      num++;
      var minusStatus = num > 1 ? 'normal' : 'disable';
      this.setData({
        num: num,
        minusStatus: minusStatus
      })
    },
    /*输入框事件*/
    bindManual: function (e) {
      var num = e.detail.value;
      var minusStatus = num > 1 ? 'normal' : 'disable';
      this.setData({
        num: num,
        minusStatus: minusStatus
      })
    },

    // 将缓存中的用户数据记录到数据库
    getData: function () {
      const db = wx.cloud.database();
      var collection = this.data.collection
      db.collection('userData').doc(this.data.countID).update({
        data: {
          checked: wx.getStorageSync("checked"),
          day_num: this.data.num,
          all_num: wx.getStorageSync("all_num"),
          now_num: wx.getStorageSync("now_num"),
          id: wx.getStorageSync("previous")
        },
      })
    },

    getmessage: function () {
      // 获取此次用户的openid
      var _openid = wx.getStorageSync("_openid");
      const db = wx.cloud.database();
      // 获取数据库中用户的信息
      const cont = db.collection('usermessage');
      cont.where({
        _openid: _openid,
      }).get({
        success: res => {
          var username = res.data[0].username;
          this.setData({
            username: username,
          })
        }
      })
      // 获取数据库中用户的应用数据
      db.collection('userData').where({
        _openid: _openid,
      }).get({
        success: res => {
          var _id = res.data[0]._id;
          this.setData({
            countID: _id,
          })
        }
      })

    },
  }
})